<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">
            <ui:define name="bar">
                <h:form id="barForm">
                    <p:panel id="barPanel" styleClass="noMargin noPadding noBorder">
                        <p:commandButton styleClass="actionButton" id="filtrarProductoButton" value="#{messages.Filtrar}" actionListener="#{inventarioAlmacenBean.init()}" update=":dialogoForm:panelDialogoFiltrado" oncomplete="dialogoFiltrarProducto.show();"></p:commandButton>  
                    </p:panel>
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                    <p:dialog id="dialogoFiltrarProducto" modal="true" widgetVar="dialogoFiltrarProducto"  header="#{messages.FiltrarProducto}">
                        <h:panelGrid id="panelDialogoFiltrado" columns="2">
                            <p:outputLabel for="filtrarD" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu  converter="#{dConverter}" id="filtrarD" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarC" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="filtrarC" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarS" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="filtrarS" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarTemporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="filtrarTemporada" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSerieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="filtrarSerieTallaje" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="filtrarSexo" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarProveedor" value="#{messages.Proveedor}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarProveedor" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.proveedorFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaProveedor}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="proveedor" itemLabel="#{proveedor.nombreComercial}" itemValue="#{proveedor}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarFabricanteTela" value="#{messages.FabricanteTela}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarFabricanteTela" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.fabricanteTelaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaFabricanteTela}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="fabricanteTela" itemLabel="#{fabricanteTela.nombreComercial}" itemValue="#{fabricanteTela}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarActivo" value="#{messages.Activo}"></p:outputLabel>
                            <p:selectOneMenu id="filtrarActivo" value="#{inventarioAlmacenBean.filtroProductos.filtradoDataModel.activoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.Indiferente}" itemValue="" />  
                                <f:selectItem itemLabel="#{messages.Activo}" itemValue="#{true}" />
                                <f:selectItem itemLabel="#{messages.Inactivo}" itemValue="#{false}" />
                            </p:selectOneMenu>

                        </h:panelGrid>
                        <p:commandButton update=":dialogoForm:lineasInventarioAdd" oncomplete="dialogoFiltrarProducto.hide();dialogoAddProductos.show();" value="#{messages.Filtrar}" actionListener="#{inventarioAlmacenBean.filtrar()}"></p:commandButton>
                    </p:dialog>
                    <p:dialog id="dialogoAddProductos" modal="true" widgetVar="dialogoAddProductos" header="#{messages.AddProductos}">
                        <p:panel styleClass="noMargin noPadding noBorder">  
                            <h:commandLink value="#{messages.Excel}">  
                                <p:dataExporter type="xls" target="lineasInventarioAdd" fileName="inventario" />  
                            </h:commandLink>  

                            <h:commandLink value="#{messages.Pdf}">  
                                <p:dataExporter type="pdf" target="lineasInventarioAdd" fileName="inventario"/>  
                            </h:commandLink> 
                        </p:panel>
                        <p:dataTable scrollable="true" scrollHeight="500" emptyMessage="#{messages.NoProductos}" resizableColumns="true" id="lineasInventarioAdd" var="lineaInventario" value="#{inventarioAlmacenBean.lineasAdd}">
                            <p:column sortBy="#{lineaInventario.productoTalla.producto.c.descripcion}" headerText="#{messages.C}" filterBy="#{lineaInventario.productoTalla.producto.c.descripcion}" filterMatchMode="contains">
                                <h:outputText value="#{lineaInventario.productoTalla.producto.c.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{lineaInventario.productoTalla.producto.descripcion}" filterBy="#{lineaInventario.productoTalla.producto.descripcion}" headerText="#{messages.Producto}">
                                <h:outputText value="#{lineaInventario.productoTalla.producto.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{lineaInventario.productoTalla.producto.color}" filterBy="#{lineaInventario.productoTalla.producto.color}" filterMatchMode="contains" headerText="#{messages.Color}">
                                <h:outputText value="#{lineaInventario.productoTalla.producto.color}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{lineaInventario.productoTalla.talla.descripcion}" filterBy="#{lineaInventario.productoTalla.talla.descripcion}" filterMatchMode="contains" headerText="#{messages.Talla}">
                                <h:outputText value="#{lineaInventario.productoTalla.talla.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}" filterBy="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}" filterMatchMode="contains" headerText="#{messages.Localizacion}">
                                <h:outputText value="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{lineaInventario.cantidad}" filterBy="#{lineaInventario.cantidad}" filterMatchMode="contains" headerText="#{messages.Cantidad}">
                                <p:inputText styleClass="pedidoInput" value="#{lineaInventario.cantidad}">
                                </p:inputText>
                            </p:column>
                        </p:dataTable>
                        <p:commandButton update=":inventarioAlmacenForm" oncomplete="dialogoAddProductos.hide();" value="#{messages.Add}" actionListener="#{inventarioAlmacenBean.guardar()}"></p:commandButton>
                    </p:dialog>
                </h:form>
            </ui:define>
            
            <ui:define name="content">
                <h:form id="inventarioAlmacenForm">
                    <p:growl autoUpdate="true" life="4000" id="almacenGrowl"></p:growl>
                    <p:dataTable emptyMessage="#{messages.NoProductos}" resizableColumns="true" id="lineasInventario" var="lineaInventario" rowKey="#{lineaInventario.idLineaInventarioAlmacen}" value="#{inventarioAlmacenBean.almacen.lineaInventarioAlmacenList}">
                        <p:column sortBy="#{lineaInventario.productoTalla.producto.c.descripcion}" headerText="#{messages.C}" filterBy="#{lineaInventario.productoTalla.producto.c.descripcion}" filterMatchMode="contains">
                            <h:outputText value="#{lineaInventario.productoTalla.producto.c.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{lineaInventario.productoTalla.producto.descripcion}" filterBy="#{lineaInventario.productoTalla.producto.descripcion}" headerText="#{messages.Producto}">
                            <h:outputText value="#{lineaInventario.productoTalla.producto.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{lineaInventario.productoTalla.producto.color}" filterBy="#{lineaInventario.productoTalla.producto.color}" filterMatchMode="contains" headerText="#{messages.Color}">
                            <h:outputText value="#{lineaInventario.productoTalla.producto.color}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{lineaInventario.productoTalla.talla.descripcion}" filterBy="#{lineaInventario.productoTalla.talla.descripcion}" filterMatchMode="contains" headerText="#{messages.Talla}">
                            <h:outputText value="#{lineaInventario.productoTalla.talla.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}" filterBy="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}" filterMatchMode="contains" headerText="#{messages.Localizacion}">
                            <h:outputText value="#{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).tipoLocalizacionAlmacen.descripcion} #{inventarioAlmacenBean.recuperarLocalizacionDeLineaDeInventario(lineaInventario).descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{lineaInventario.cantidad}" filterBy="#{lineaInventario.cantidad}" filterMatchMode="contains" headerText="#{messages.Cantidad}">
                            <p:inputText styleClass="pedidoInput" value="#{lineaInventario.cantidad}">
                                <p:ajax event="change" listener="#{inventarioAlmacenBean.onChange(lineaInventario)}"></p:ajax>
                            </p:inputText>
                        </p:column>
                    </p:dataTable>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
